package com.blue.vo.workflow;

import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

/**
 * 流程任务实例表
 *
 * @author nanjie.chen
 * @email 15696471158@163.com
 * @date 2025-03-07
 */
@Data
public class TaskInstanceVO implements Serializable {
    @Serial
    private static final long serialVersionUID = 1L;

    @Schema(description = "流程任务实例ID")
    private String id;

    @Schema(description = "流程实例ID")
    private String instanceId;

    @Schema(description = "当前处理节点ID")
    private String currentNodeId;

    @Schema(description = "实际处理人ID")
    private String assigneeId;

    @Schema(description = "任务状态(0-pending,1-approved,2-rejected,3-back,4-revoked,5-transfer,6-restart,7-canceled)")
    private String status;

    @Schema(description = "操作时间")
    private String operationTime;

    @Schema(description = "审批意见")
    private String remark;

    @Schema(description = "流程节点多人审批方式(0-或签(只需一名审批人同意或拒绝即可),1-会签(需要所有审批人同意，不限顺序))")
    private String multiType;

    @Schema(description = "前序流程节点ID（用于退回跟踪）")
    private String previousNodeId;

    @Schema(description = "流程任务实例类型(0-审批类型,1-转办类型,2-加签类型)")
    private String taskType;

    @Schema(description = "转办/加签流程任务实例ID")
    private String relateTaskId;

    @Schema(description = "创建时间")
    private String createTime;

    @Schema(description = "排序")
    private BigDecimal sort;

    @Schema(description = "流程处理人")
    private String assignee;

    @Schema(description = "抄送人")
    private String ccTos;

    @Schema(description = "关联处理人")
    private String relateAssignee;

    @Schema(description = "子级任务")
    private List<TaskInstanceVO> children;


}
